package SET;


//LinkedHashSet  底层起始维护的是一个 数组 + 双向链表
//LinkedHashSet也具有Set集合"不可重复"的特点。
//但由于LinkedHashSet根据元素的哈希值来决定元素的存储位置，同时使用双向链表来维护元素的次序，所以这就使得元素看起来是以插入顺序保存的

import java.util.Iterator;
import java.util.LinkedHashSet;


class Cat
{
    String name;
    int age;

    public Cat() {

    }

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
public class linked_hashset {
    public static void main(String[] args) {
        LinkedHashSet lhs = new LinkedHashSet();

        lhs.add("123");
        lhs.add("CSDN");
        lhs.add(56);
        lhs.add(new Cat("花花",4));
        lhs.add(56);

        Iterator it = lhs.iterator();  //获取Iterator对象
        while(it.hasNext()){
            System.out.println(it.next());
        }

        System.out.println(lhs);
    }
}
